今天,我們將學會什麼是 ECS(Elastic Common Schema)以及如何讀取 SIEM 的資料進 Elastic SIEM。
本篇的主題包含有:
那我們就開始吧!
Event 是用 JSON 的格式儲存在 ES 當中,JSON 是由 key-value pair 所構成的資料,並且會包含時間戳記。
而在儲存 Event 建立索引時,我們必須要定義好 Mappings,即是每個欄位的資料型態,而欄位的資料也可以透過各種工具轉換如 Beats、Logstash 等。
考慮下面的系統架構,當一個源頭 A,IP 是 10.10.10.251,在不同的系統儲存相同資料時,使用的名稱會各有不同,例如說 Firewall 會叫 Source IP
,IDS 叫 source.ip
,而 NSM 稱作 id.orig_h
,這樣對於分析師小明就很頭痛了,想要有效率的查找相同一件事在不同系統上,就要弄不同名稱,小明保證直接轉職賣雞排去了XD
而 ECS 的出現,就是為了要歸一化(Normalize)這些不同的名稱,讓我們查找的時候可以更有效率。
ECS 定義了多組相關的 Fields,稱作 Field Sets,詳細各種 Field Sets 的分類可以參考官方的文件:https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html
相信在前面幾天的文章,大家都已經了解 Beat 在 Elastic Stack 所扮演的角色,這邊另外值得一提的是,不同類型的資料,有其適用的 Beat 工具:
這一部分的實作,我們將可以學到:
Add data
:Auditbeat
:DEB
tab:# 下載並安裝 Auditbeat
curl -L -O https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-7.5.1-amd64.deb
sudo dpkg -i auditbeat-7.5.1-amd64.deb
# 設置並啟動 Auditbeat
sudo auditbeat setup
sudo service auditbeat start
Check data
,確定資料有成功的從 Auditbeat 收到:View hosts
來看看:Timeline
,可以看到 events 的細節:Timeline
裡面可以看到許多的 events,我們點到 JSON View
tab,往下拉一些可以看到 ECS 的版本會是 1.1.0
!Add data
,這次我們選擇 Zeek logs
:DEB
tab,依照步驟安裝:# 下載並安裝 Filebeat
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.5.1-amd64.deb
sudo dpkg -i filebeat-7.5.1-amd64.deb
sudo filebeat modules enable zeek
sudo filebeat setup
sudo service filebeat start
Check data
,確認 zeek 模組的狀態,疑!怎麼沒有讀取到資料呢?!cd /home/ubuntu/scripts
./zeek.sh
雄壯~威武~今天實際操作了把 SIEM 資料讀取進 Elastic Stack,可惜來不及操作異常偵測的部分!
明天開始就要繼續前往下一個主題:Elastic Endpoint Security 基礎,藉著一步步認識 Elastic 上與安全性相關的內容,讓我們的服務更加安全吧!